Skip to content

Conversation

kmruiz
Copy link
Collaborator

@kmruiz kmruiz commented Oct 6, 2025

Proposed changes

It detects if the cluster supports search indexes the same way we do in all other tooling: by catching the exception. In some old clusters it might still return an empty list for unsupported clusters, but we can't really know for sure.

Checklist

@kmruiz kmruiz changed the title feat(search): Add a new tool to list search and vector search indexes feat(search): Add a new tool to list search and vector search indexes MCP-235 Oct 6, 2025
Copy link
Contributor

github-actions bot commented Oct 6, 2025

📊 Accuracy Test Results

📈 Summary

Metric Value
Commit SHA 38efa179d6b674dc3dd6462bb18afcec825da2bf
Run ID 7839650b-f59d-4eb6-8c35-4215b4b87d10
Status done
Total Prompts Evaluated 61
Models Tested 1
Average Accuracy 95.1%
Responses with 0% Accuracy 2
Responses with 75% Accuracy 4
Responses with 100% Accuracy 55

📊 Baseline Comparison

Metric Value
Baseline Commit 071fc3bb8ded2e723562ef0a203a3adef60012f1
Baseline Run ID 164e8532-931b-4baf-b8e6-5dd0524cb6a1
Baseline Run Status done
Responses Improved 0
Responses Regressed 1

📎 Download Full HTML Report - Look for the accuracy-test-summary artifact for detailed results.

Report generated on: 10/6/2025, 1:52:38 PM

@coveralls
Copy link
Collaborator

coveralls commented Oct 6, 2025

Pull Request Test Coverage Report for Build 18338555347

Warning: This coverage report may be inaccurate.

This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

Details

  • 54 of 63 (85.71%) changed or added relevant lines in 2 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+0.1%) to 82.603%

Changes Missing Coverage Covered Lines Changed/Added Lines %
src/tools/mongodb/search/listSearchIndexes.ts 52 61 85.25%
Totals Coverage Status
Change from base Build 18276805864: 0.1%
Covered Lines: 5358
Relevant Lines: 6371

💛 - Coveralls

@kmruiz kmruiz marked this pull request as ready for review October 6, 2025 14:55
@kmruiz kmruiz requested a review from a team as a code owner October 6, 2025 14:55
@Copilot Copilot AI review requested due to automatic review settings October 6, 2025 14:55
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds a new MongoDB MCP tool called "list-search-indexes" that allows users to list search and vector search indexes for a specific collection. The tool detects Atlas Search support by catching exceptions and provides appropriate error messages for unsupported clusters.

Key changes:

  • New search indexes listing tool with comprehensive test coverage
  • Enhanced test infrastructure to support Atlas Local containers via Docker
  • Refactored shared utilities and improved test organization

Reviewed Changes

Copilot reviewed 11 out of 12 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
src/tools/mongodb/search/listSearchIndexes.ts Core implementation of the new list-search-indexes tool
tests/integration/tools/mongodb/search/listSearchIndexes.test.ts Integration tests for the new tool with Atlas Local support
tests/integration/tools/mongodb/mongodbHelpers.ts Enhanced test helpers to support Docker containers and search clusters
tests/accuracy/listSearchIndexes.test.ts Accuracy tests for the new tool
src/tools/mongodb/tools.ts Registers the new tool in the MongoDB tools array
tests/integration/transports/stdio.test.ts Updates tool count expectation
tests/integration/helpers.ts Adds shared sleep utility function
tests/integration/tools/atlas/clusters.test.ts Uses shared sleep utility
package.json Adds testcontainers dependencies
.github/workflows/code-health.yml Adds Docker setup for CI
.github/workflows/code-health-fork.yml Adds Docker setup for fork CI

@kmruiz kmruiz requested a review from Copilot October 6, 2025 15:10
Copilot

This comment was marked as outdated.

It detects if the cluster supports search indexes the same way we
do in all other tooling: by catching the exception. In some old
clusters it might still return an empty list for unsupported
custers, but we can't really know for sure.

As we depend on mongot, we need to use the Atlas local
image, which is not supported by mongodb-runner. Instead,
we use testcontainers, that allows to run any docker image,
which is enough for our use case.

For now only run docker tests in Ubuntu
* macos-latest does not support nested virtualisation yet
* we don't have windows containers for atlas images
kmruiz added 2 commits October 8, 2025 10:25
Now, there is a new class, MongoDBClusterProcess, that knows
how to start and stop a cluster based on the provided configuration.
This decouples the test setup and simplifies any future approaches
to consolidate running strategies into one.
@kmruiz kmruiz requested a review from nirinchev October 8, 2025 09:16
Copy link
Collaborator

@himanshusinghs himanshusinghs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good 🚀

Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 15 out of 16 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (1)

tests/integration/tools/mongodb/search/listSearchIndexes.test.ts:1

  • This tool should be enabled for production use, not just tests. The verifyAllowed method should return true or be removed entirely to follow the architectural guidelines.
import { describeWithMongoDB, getSingleDocFromUntrustedContent } from "../mongodbHelpers.js";

@kmruiz kmruiz merged commit c12de89 into main Oct 8, 2025
18 checks passed
@kmruiz kmruiz deleted the chore/mcp-235 branch October 8, 2025 13:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants